/*
 * Vec4.h
 *
 *  Created on: 07.05.2012
 *      Author: jan
 */

#ifndef VEC4_H_
#define VEC4_H_

#include <ostream>

class Vec4 {
private:
	double x, y, z, w;
public:

	Vec4(double x, double y, double z, double w):
		x(x), y(y), z(z), w(w) {};

	virtual ~Vec4();
//	double setVec4(double x, double y, double z, double w);

	double& operator[] (int index);
	const double& operator[] (int index) const;
	Vec4 operator+ (Vec4 const& v);
	Vec4 operator- (Vec4 const& v);


	double operator* (Vec4 const& v);
	double norm();

};

Vec4 operator* (Vec4 const&, double a);
Vec4 operator* (double a, Vec4 const&);
std::ostream& operator<< (std::ostream& o, Vec4 const& v);
#endif
